<?php
/**
* JavaScript 클래스 정의
* @package Utility
* @since 2005-08-11
* @update 2008-01-22
* @version 5.1.0
* @author hamhaja <hamhaja@nextez.co.kr>
**/
if (!class_exists("JavaScript"))
{
	class JavaScript
	{
		/**
		* @var string $_code 스크립트 코드
		**/
		var $_code;

		/**
		* PHP 5 Constructor
		**/
		function __construct()
		{
			$this->_code = '';
		}

		/**
		* Constructor
		*/
		function JavaScript()
		{
			$this->__construct();
		}

		/**
		* 스크립트 코드를 추가합니다.
		* @param string $code 스크립트 코드
		* @param boolean $is_print 스크립트 출력여부
		* @version 5.0.0
		**/
		function add($code, $is_print=true)
		{
			$this->_code .= $code;
			if ($is_print) $this->_print();
		}

		/**
		* 메세지 다이얼로그 출력 코드를 생성한다.
		* @param string $msg 다이얼로그 메세지 내용
		* @param boolean $is_print 스크립트 출력여부
		* @version 5.0.0
		**/
		function alert($msg, $is_print=true)
		{
			$this->_code .= "window.alert('" . str_replace("'", "\'", $msg) . "');";
			if ($is_print) $this->_print();
		}

		/**
		* 윈도우 닫기코드를 생성한다.
		* @param string $target 대상윈도우
		* @param boolean $is_print 스크립트 출력여부
		* @version 5.0.0
		**/
		function close($target='self', $is_print=true)
		{
			$this->_code .= $target . '.close();';
			if ($is_print) $this->_print();
		}

		/**
		* 스크립트 go()실행
		* @param integer $go 이동페이지수
		* @param boolean $is_print 스크립트 출력여부
		* @version 5.0.0
		**/
		function go_to($go, $is_print=true)
		{
			$this->_code .= "history.go({$go})";
			if ($is_print) $this->_print();

		}

		/**
		* id의 객체에 html코드를 삽입한다.
		* @param string $id 객체id
		* @param string $html 삽입코드
		* @param string $target 대상윈도우
		* @param boolean $is_print 스크립트 출력여부
		* @version 5.0.0
		**/
		function inner_html_by_id($id, $html, $target='self', $is_print=true)
		{
			$this->_code .= "var {$id} = {$target}.document.getElementById('{$id}');\n if ($id) {$id}.innerHTML = '{$html}';\n";
			if ($is_print) $this->_print();
		}

		/**
		* 페이지를 이동 코드를 생성한다.
		* @param string $url 이동 페이지
		* @param string $target 대상윈도우
		* @param boolean $is_print 스크립트 출력여부
		* @version 5.0.0
		**/
		function location($url, $target='self', $is_print=true)
		{
			$this->_code .= $target . ".location.href='{$url}';";
			if ($is_print) $this->_print();
		}

		/**
		* reload를 수행한다.
		* @param string $target 대상윈도우
		* @param boolean $is_print 스크립트 출력여부
		* @version 5.0.0
		**/
		function reload($target='self', $is_print=true)
		{
			if (is_array($target))
			{
				foreach ($target as $v)
					$this->_code .= $v . '.location.reload();';
			}
			else if (is_string($target)) $this->_code .= $target . '.location.reload();';
			if ($is_print) $this->_print();
		}

		/**
		* 현재 설정된 스크립트를 출력한다.
		* @version 5.0.0
		**/
		function _print()
		{
			if (!empty($this->_code))
			{
				$code = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
				<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ko\">
				<head>
				<title>스크립트</title>				
				<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-kr\" />
				<script type='text/javascript'>
				<!--
				{$this->_code}
				-->
				</script>
				</head>
				<body></body>
				</html>
				";
				$this->_code = '';
				echo $code;
			}
		}
	}
}
?>